<link href="/Public/Index/css/common.css" rel="stylesheet" />
<link href="/Public/Index/css/index.css" rel="stylesheet" />
<div>
    <div id="app"  v-cloak>
        <div class="top border ">
            <div class="f-14 col-main f-b">车辆紧急调度</div>
            <div class="dis-flex flex-x-end flex-y-center">
                <el-button :disabled="isEdit" type="warning" icon="el-icon-circle-plus-outline" size="mini" @click="addCar">新增</el-button>
                <el-button :disabled="isEdit" type="primary" icon="el-icon-edit" size="mini">编辑</el-button>
            </div>
        </div>
        <div class="main">
            <!-- 调度车 --------------------------------------------------------------- -->
            <div class="box border" style="padding:10px 20px 5px 20px;">
                <top-form 
                    :searchbox="car.searchBox" 
                    :defaultpramas="defaultPramas" 
                ></top-form>
            </div>
            <div class="box border m_top10 orderlist">
                <template>
                    <el-table 
                        ref="cartable" 
                        :data="car.tableData" 
                        height="330" 
                        tooltip-effect="dark" 
                        border 
                        stripe 
                        highlight-current-row 
                        highlight-selection-row 
                        size="mini" 
                        style="width: 100%" 
                        :row-class-name="tableRowClassName" 
                        element-loading-text="加载中..."
                    >
                        <template v-slot:empty>
                            <div style="padding-left:300px" class="f-14 col-6">{{car.tableEmptyText}}</div>
                        </template>
                        <!-- selectable function 判断是否可以被勾选 -->
                        <el-table-column type="selection" width="40" fixed> 
                        </el-table-column>

                        <el-table-column v-for="item in car.tableRole" :key="item.idx" :width="item.width" :fixed="item.fixed" :label="item.title" show-overflow-tooltip>
                            <template slot-scope="scope">
                                <div v-for="(item2,index) in scope.row" v-if="index == item.field">
                                    <div v-if="scope.row.show && !scope.row.noedit && !item.noedit">
                                        <!-- 文本框 -->
                                        <el-input v-if="item.type == 'text'" v-show="scope.row.show" v-model="scope.row[index]" size="mini">
                                        </el-input>
                                        <!-- 数字框 -->
                                        <el-input v-if="item.type == 'number'" v-show="scope.row.show" v-model="scope.row[index]" size="mini" type="number">
                                        </el-input>
                                        <!-- 日期 -->
                                        <el-date-picker 
                                            v-if="item.type == 'date'" 
                                            v-model="scope.row[index]" 
                                            v-show="scope.row.show" 
                                            size="mini" 
                                            :value-format="item.format ? item.format : 'yyyy-MM-dd'" 
                                            :format="item.format ? item.format : 'yyyy-MM-dd'" 
                                        >
                                        </el-date-picker>
                                        <!-- 日期时间 -->
                                        <el-date-picker 
                                            v-if="item.type == 'datetime'" 
                                            type="datetime" 
                                            v-model="scope.row[index]" 
                                            v-show="scope.row.show" 
                                            size="mini"
                                            :value-format="item.format ? item.format : 'yyyy-MM-dd HH:mm:ss'" 
                                            :format="item.format ? item.format : 'yyyy-MM-dd HH:mm:ss'" 
                                        >
                                        </el-date-picker>
                                        <!-- 固定选择 -->
                                        <el-select filterable v-if="item.type == 'select'" size="mini" v-model="scope.row[index]">
                                            <el-option v-for="item3 in item.option" :key="item3.value" :label="item3.label" :value="item3.value">
                                            </el-option>
                                        </el-select>

                                        <!-- api选择 -->
                                        <td-api-select v-if="item.type == 'select_api'" :role="item" :scoperow="scope.row"> </td-api-select>
                                        <!-- 地区选择 -->
                                        <td-area v-if="item.type == 'area'" :role="item" :scoperow="scope.row"> </td-area>

                                    </div>
                                    <span v-if="!scope.row.show || scope.row.noedit || item.noedit">
                                        <!-- 固定选择/ 匹配显示 -->
                                        <span v-if="item.type == 'select' || item.type == 'select_api'">
                                            <span v-for=" item in item.option" v-if="item.value == scope.row[index]">{{item.label}}</span>
                                        </span>
                                        <!-- 普通显示 -->
                                        <span v-else>{{scope.row[index]}}</span>
                                    </span>
                                </div>
                            </template>
                        </el-table-column>
                    </el-table>

                    <el-row>
                        <el-col :span="16">
                            <el-pagination @size-change="carSizeChange" @current-change="carHandleCurrentChange" :current-page="car.page" :page-sizes="[10,30, 50, 70, 100]" :page-size="car.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="car.total">
                            </el-pagination>
                        </el-col>
                        <el-col :span="8">
                            <div class="dis-flex flex-x-end">
                                <!-- <el-button type="warning" @click="getCurrentRow" plain size="mini">警告按钮</el-button> -->
                            </div>
                        </el-col>
                    </el-row>
                </template>
            </div>
            <!-- 调度车 --------------------------------------------------------------- -->
            <!-- 底部tab --------------------------------------------------------------- -->
            <div class="box border m_top10">
                
            </div>
            <!-- 底部tab --------------------------------------------------------------- -->
        </div>
    </div>
</div>
<script src="https://unpkg.zhimg.com/vue@2/dist/vue.js"></script>
<script src="https://unpkg.zhimg.com/element-ui/lib/index.js"></script>
<script src="/Public/Index/js/common.js"></script>
<script src="/Public/Index/vue/components/table/topform.js"></script>
<script src="/Public/Index/vue/components/table/apiselect.js"></script>
<script src="/Public/Index/vue/components/table/area.js"></script>
<script type="text/javascript">

   /* Vue.component('ElTableCheckbox', {
        props:[
            'row',
            'column',
            'store',
            '$index'
        ],
        render(){
            const { row, column, store, $index } = this;
            return "<el-checkbox nativeOn-click={ (event) => event.stopPropagation() }  value={ store.isselected(row) }  disabled = { column.selectable ? !column.selectable.call(null, row, $index) : false  } on-input={ () => { store.commit('rowSelectedChanged', row); }} />";
        }
    })*/
    new Vue({
        el: '#app',
        data() {
            return {
                //全局预定义数据--------------------------->
                isEdit:false,
                //全局请求筛选字段
                defaultPramas:{},
                //调度车表
                car:{
                    searchBoxCacheData:{},
                    //表格空值文字
                    tableEmptyText:'暂无数据',
                    page: 1,
                    total: 0,
                    pageSize: 10,
                    //检索1
                    searchBox: [
                        {
                            title: '客户',
                            dec: '输入客户名称',
                            field: 'cCUST_SNM',
                            icon: 'el-icon-user-solid',
                            //
                            type: 'select_api',
                            option:[],
                            value: '',
                            //
                            action: 'cust/search', //调用方法
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '编号',
                                    field: 'cCUST_NO',
                                    width: 150,
                                    toInsert:'cCUST_NO', //带出写入
                                },{
                                    title: '客户名称',
                                    field: 'cCUST_NM',
                                    width: 150,
                                },
                            ], 
                            showfield:'cCUST_NM', //展示字段
                            filtefield:'cCUST_NM', //筛选字段(用于选择的数据的某个字段)
                            parentField:false,
                            hasCheck:true, //是否检查所输入内容为在选择列表中的项
                            //
                            insert_deafault_field:{
                                'cCUST_NO':'cCUST_NO', //数据字段','基础表字段
                            },
                            //
                        },
                        {
                            type: 'text',
                            title: '叫车人员',
                            dec: '输入叫车人员',
                            field: 'cEMP_NO',
                            icon: 'el-icon-user-solid',
                            value: '',
                        },{
                            type: 'date',
                            title: '年月',
                            dec: '输入年月',
                            field: 'cCAYING_DATE',
                            icon: 'el-icon-user-solid',
                            value: '',
                            format: 'yyyy-MM/dd',
                        },{
                            type: 'text',
                            title: '现场手机',
                            dec: '输入现场手机号码',
                            field: 'cEMPMOBIL_TEL',
                            icon: 'el-icon-user-solid',
                            value: '',
                        },{
                            type: 'checkbox',
                            title: '结算类别',
                            field: 'cCAY_STATUS',
                            icon: 'el-icon-message-solid',
                            value: [],
                            option: [{
                                value: 0,
                                label: '未结算'
                            }, {
                                value: 1,
                                label: '已结算'
                            }, {
                                value: 3,
                                label: '结算完'
                            }],
                        },{
                            type: 'checkbox',
                            title: '状态',
                            field: 'orderstate',
                            icon: 'el-icon-message-solid',
                            value: [],
                            option: [{
                                value: 0,
                                label: '待调度'
                            }, {
                                value: 1,
                                label: '已调度'
                            }, {
                                value: 3,
                                label: '已关联'
                            }],
                        },{
                            type: 'daterange', //时间范围
                            title: '调车时间',
                            field: 'cCAY_STATUS',
                            icon: 'el-icon-date',
                            value: '',
                        },{
                            title: '承运别',
                            field: 'cSUPLKIND_NO',
                            icon: 'el-icon-menu',
                            //
                            fixed: false,
                            width: 200,
                            sort: false,
                            //
                            type: 'select_api',
                            option: [],
                            value: '',
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '编号',
                                    field: 'cSUPLKIND_NO',
                                    width: 150,
                                    toInsert:'cSUPLKIND_NO', //带出写入
                                },{
                                    title: '承运商分类',
                                    field: 'cSUPLKIND_NM',
                                    width: 150,
                                },
                            ], 
                            showfield:'cSUPLKIND_NM', //展示字段
                            filtefield:'cSUPLKIND_NM', //筛选字段(用于选择的数据的某个字段)
                            clearfield:['cSUPPLIER_NO','cSUPPLIER_NM'], //为空时,需要 关联清空的字段 
                            //
                            action: 'supplier/kind/search', //调用方法
                        },{
                            title: '承运商',
                            field: 'cSUPPLIER_NM',
                            icon: 'el-icon-user-solid',
                            //
                            fixed: false,
                            width: 230,
                            sort: false,
                            //
                            type: 'select_api',
                            option: [],
                            value: '',
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '编号',
                                    field: 'cSUPPLIER_NO',
                                    width: 150,
                                    toInsert:'cSUPPLIER_NO', //带出写入
                                },{
                                    title: '承运商',
                                    field: 'cSUPPLIER_NM',
                                    width: 150,
                                }
                            ], 
                            showfield:'cSUPPLIER_NM', //展示字段
                            filtefield:'cSUPPLIER_NM', //筛选字段(用于选择的数据的某个字段)
                            //``
                            action: 'supplier/search', //调用方法
                            parentField: [
                                ['cSUPLKIND_NO','cSUPLKIND_NO'], //['数据字段','基础表字段']   关联上级字段 (不会预加载)
                            ],     

                        }

                    ],
                    // 调度车规则
                    tableRole: [
                        {
                            title: 'ID',
                            field: 'idx',
                            //
                            fixed: false,
                            width: 80,
                            sort: false,
                            //
                            noedit: true,
                        }, {
                            title: '状态',
                            field: 'orderstate',
                            //
                            fixed: false,
                            width: 110,
                            sort: false,
                            //
                            type: 'select',
                            option: [{
                                value: '0',
                                label: '未调度'
                            }, {
                                value: '1',
                                label: '已调度'
                            }, {
                                value: '2',
                                label: '已完成'
                            }],
                            value: '',
                            noedit:true,
                        },{
                            title: '叫车日期',
                            field: 'cCAYING_DATE',
                            //
                            fixed: false,
                            width: 150,
                            sort: false,
                            //
                            type: 'date',
                            value: '',
                            defautvalue:getNowTime(true,true,true),
                            format:"yyyy-MM-dd",
                        },{
                            title: '账款年月',
                            field: 'cFIN_MON',
                            //
                            fixed: false,
                            width: 150,
                            sort: false,
                            //
                            type: 'text',
                            value: '',
                            defautvalue:getNowTime(true,true,false),
                        },{
                            title: '叫车人员',
                            field: 'cEMP_NO',
                            //
                            fixed: false,
                            width: 150,
                            sort: false,
                            //
                            type: 'select_api',
                            option: [],
                            value: '',
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '编号',
                                    field: 'cEMP_NO',
                                    width: 150,
                                    toInsert:'cEMP_NO', //带出写入
                                },{
                                    title: '姓名',
                                    field: 'cEMP_NM',
                                    width: 150,
                                    toInsert:'cEMP_NM', //带出写入
                                },{
                                    title: '手机',
                                    field: 'cMOBILE_TEL',
                                    width: 150,
                                    toInsert:'cEMPMOBIL_TEL', //带出写入
                                },
                            ], 
                            showfield:'cEMP_NM', //展示字段
                            filtefield:'cEMP_NM', //筛选字段(用于选择的数据的某个字段)
                            hasCheck:true, //是否检查所输入内容为在选择列表中的项
                            //
                            action: 'info/emp/search', //调用方法
                            //
                            extra_prama: [['cDUTY_NO','=',1024]], //特别指定筛选测试
                            //
                        },{
                            title: '叫车手机',
                            field: 'cEMPMOBIL_TEL',
                            //
                            fixed: false,
                            width: 150,
                            sort: false,
                            //
                            type: 'text',
                            value: '',
                        },{
                            title: '客户',
                            field: 'cCUST_NO',
                            //
                            fixed: false,
                            width: 200,
                            sort: false,
                            //
                            type: 'select_api',
                            option: [],
                            value: '',
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '编号',
                                    field: 'cCUST_NO',
                                    width: 150,
                                    toInsert:'cCUST_NO', //带出写入
                                },{
                                    title: '客户名称',
                                    field: 'cCUST_NM',
                                    width: 150,
                                    toInsert:'cCUST_NM', //带出写入
                                },
                            ], 
                            showfield:'cCUST_NM', //展示字段
                            filtefield:'cCUST_NM', //筛选字段(用于选择的数据的某个字段)
                            hasCheck:true,
                            //
                            action: 'cust/search', //调用方法
                            default_prama:[['cCUST_NO','cCUST_NO']]
                            //
                        },{
                            title: '货物量', //件数
                            field: 'nMAT_QTY',
                            //
                            fixed: false,
                            width: 100,
                            sort: false,
                            //
                            type: 'number',
                            value: '0.000',
                        },{
                            title: '单位', //件数
                            field: 'cUNIT_NM',
                            //
                            fixed: false,
                            width: 70,
                            sort: false,
                            //
                            type: 'text',
                            value: '',
                            defautvalue: '吨',
                        },{
                            title: '起始地', //件数
                            field: 'cLADING_ADDR',
                            //
                            fixed: false,
                            width: 300,
                            sort: false,
                            //
                            type: 'area',
                            option: [], //默认省级
                            areaoption:[], //区县级别表格
                            value: '',
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '属地代码',
                                    field: 'cAPANA_NO',
                                    width: 70,
                                    toInsert:'cSTAPANA_NO', //带出写入
                                },{
                                    title: '属地简称',
                                    field: 'cAPANA_SNM',
                                    width: 200,
                                    toInsert:'cSTAPANA_NM', //带出写入
                                },{
                                    title: '属地名称',
                                    field: 'cAPANA_NM',
                                    width: 200,
                                    toInsert:'cLADING_ADDR', //带出写入
                                },{
                                    title: '省份',
                                    field: 'cPROV_NO',
                                    width: 50,
                                    toInsert:'cSTPROV_NO', //带出写入
                                },{
                                    title: '省份名称',
                                    field: 'cPROV_NM',
                                    width: 100,
                                    toInsert:'cSTPROV_NM', //带出写入
                                },{
                                    title: '城市',
                                    field: 'cCITY_NO',
                                    width: 70,
                                    toInsert:'cSTCITY_NO', //带出写入
                                },{
                                    title: '城市名称',
                                    field: 'cCITY_NM',
                                    width: 110,
                                    toInsert:'cSTCITY_NM', //带出写入
                                },
                            ], 
                            showfield:'cLADING_ADDR', //展示字段
                            //
                            action: 'area', //调用方法
                            //
                        },{
                            title: '目的地',
                            field: 'cDESTINATION',
                            //
                            fixed: false,
                            width: 300,
                            sort: false,
                            //
                            type: 'area',
                            option: [], //默认省级
                            areaoption:[], //区县级别表格
                            value: '',
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '属地代码',
                                    field: 'cAPANA_NO',
                                    width: 70,
                                    toInsert:'cEDAPANA_NO', //带出写入
                                },{
                                    title: '属地简称',
                                    field: 'cAPANA_SNM',
                                    width: 200,
                                    toInsert:'cEDAPANA_NM', //带出写入
                                },{
                                    title: '属地名称',
                                    field: 'cAPANA_NM',
                                    width: 200,
                                    toInsert:'cDESTINATION', //带出写入
                                },{
                                    title: '省份',
                                    field: 'cPROV_NO',
                                    width: 50,
                                    toInsert:'cEDPROV_NO', //带出写入
                                },{
                                    title: '省份名称',
                                    field: 'cPROV_NM',
                                    width: 100,
                                    toInsert:'cEDPROV_NM', //带出写入
                                },{
                                    title: '城市',
                                    field: 'cCITY_NO',
                                    width: 70,
                                    toInsert:'cEDCITY_NO', //带出写入
                                },{
                                    title: '城市名称',
                                    field: 'cCITY_NM',
                                    width: 110,
                                    toInsert:'cEDCITY_NM', //带出写入
                                },
                            ], 
                            showfield:'cDESTINATION', //展示字段
                            //
                            action: 'area', //调用方法
                            //
                        },{
                            title: '运费总额', //件数
                            field: 'nMAIN_AMT',
                            noedit:true,
                            //
                            fixed: false,
                            width: 70,
                            sort: false,
                            //
                            type: 'number',
                            value: '',
                            defautvalue: 0,
                        },{
                            title: '计划预付', //件数
                            field: 'nPRE_AMT',
                            noedit:true,
                            //
                            fixed: false,
                            width: 70,
                            sort: false,
                            //
                            type: 'number',
                            value: '',
                            defautvalue: 0,
                        },{
                            title: '已付金额', //件数
                            field: 'nPAY_AMT',
                            noedit:true,
                            //
                            fixed: false,
                            width: 70,
                            sort: false,
                            //
                            type: 'number',
                            value: '',
                            defautvalue: 0,
                        },{
                            title: '车辆尺寸',
                            field: 'cVEHSIZE_NM',
                            //
                            fixed: false,
                            width: 200,
                            sort: false,
                            //
                            type: 'select_api',
                            option: [],
                            value: '',
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '编号',
                                    field: 'cVEHSIZE_NO',
                                    width: 150,
                                    toInsert:'cCUST_NO', //带出写入
                                },{
                                    title: '车辆尺寸',
                                    field: 'cVEHSIZE_NM',
                                    width: 150,
                                    toInsert:'cVEHSIZE_NM', //带出写入
                                    toFunctionIncert:['getchangdu','cVEHLEN_NM'], //函数处理后带出写入  ['数据字段','方法','带出字段']
                                },
                            ], 
                            showfield:'cVEHSIZE_NM', //展示字段
                            filtefield:'cVEHSIZE_NM', //筛选字段(用于选择的数据的某个字段)
                            //
                            action: 'vehicle/size/search', //调用方法
                            //
                        },{
                            title: '车辆长度',
                            field: 'cVEHLEN_NM',
                            //
                            fixed: false,
                            width: 200,
                            sort: false,
                            //
                            type: 'select_api',
                            option: [],
                            value: '',
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '编号',
                                    field: 'cVEHLEN_NO',
                                    width: 150,
                                    toInsert:'cVEHLEN_NO', //带出写入
                                },{
                                    title: '车辆长度',
                                    field: 'cVEHLEN_NM',
                                    width: 150,
                                    toInsert:'cVEHLEN_NM', //带出写入
                                },
                            ], 
                            showfield:'cVEHLEN_NM', //展示字段
                            filtefield:'cVEHLEN_NM', //筛选字段(用于选择的数据的某个字段)
                            //
                            action: 'vehicle/len/search', //调用方法
                            //
                        },

                        {
                            title: '司机',
                            field: 'cVEHMAN_NM',
                            //
                            fixed: false,
                            width: 200,
                            sort: false,
                            //
                            type: 'select_api',
                            option: [],
                            value: '',
                            //选择内表格布局规则
                            action: 'supplier/cay/track/search', //调用方法
                            maxNum:200,
                            optionBoxWidth:600,
                            optionTableRole: [
                                {
                                    title: '编号',
                                    field: 'cCORP_NO',
                                    width: 150,
                                },{
                                    title: '司机',
                                    field: 'cVEHMAN_NM',

                                    width: 80,
                                    toInsert:'cVEHMAN_NM', //带出写入
                                },{
                                    title: '司机手机',
                                    field: 'cMOBIL_TEL',
                                    width: 100,
                                    toInsert:'cMOBIL_TEL', //带出写入
                                },{
                                    title: '车牌号码',
                                    field: 'cVEHPLATE_NO',
                                    width: 70,
                                    toInsert:'cVEHPLATE_NO', //带出写入
                                }
                            ], 
                            showfield:'cVEHMAN_NM', //展示字段
                            filtefield:'cVEHMAN_NM', //筛选字段(用于选择的数据的某个字段)
                        },{
                            title: '车牌号码', //件数
                            field: 'cVEHPLATE_NO',
                            //
                            fixed: false,
                            width: 120,
                            sort: false,
                            //
                            type: 'text',
                            value: '',
                            defautvalue: '',
                        },{
                            title: '司机手机', //件数
                            field: 'cMOBIL_TEL',
                            //
                            fixed: false,
                            width: 130,
                            sort: false,
                            //
                            type: 'text',
                            value: '',
                            defautvalue: '',
                        },{
                            title: '承运商分类',
                            field: 'cSUPLKIND_NO',
                            //
                            fixed: false,
                            width: 200,
                            sort: false,
                            //
                            type: 'select_api',
                            option: [],
                            value: '',
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '编号',
                                    field: 'cSUPLKIND_NO',
                                    width: 150,
                                    toInsert:'cSUPLKIND_NO', //带出写入
                                },{
                                    title: '承运商分类',
                                    field: 'cSUPLKIND_NM',
                                    width: 150,
                                    toInsert:'cSUPLKIND_NM', //带出写入
                                },
                            ], 
                            showfield:'cSUPLKIND_NM', //展示字段
                            filtefield:'cSUPLKIND_NM', //筛选字段(用于选择的数据的某个字段)
                            clearfield:['cSUPPLIER_NO','cSUPPLIER_NM','cSUPPLIER_NM','cSUPLINK_MAN','cSUPLTEL_NO','cSUPMOBIL_TEL'], //为空时,需要 关联清空的字段 
                            //
                            action: 'supplier/kind/search', //调用方法
                        },{
                            title: '承运商/个人',
                            field: 'cSUPPLIER_SNM',
                            //
                            fixed: false,
                            width: 230,
                            sort: false,
                            //
                            type: 'select_api',
                            option: [],
                            value: '',
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '编号',
                                    field: 'cSUPPLIER_NO',
                                    width: 150,
                                    toInsert:'cSUPPLIER_NO', //带出写入
                                },{
                                    title: '承运商',
                                    field: 'cSUPPLIER_NM',
                                    width: 150,
                                    toInsert:'cSUPPLIER_NM', //带出写入
                                },{
                                    title: '承运联系人',
                                    field: 'cLINKMAN',
                                    width: 150,
                                    toInsert:'cSUPLINK_MAN', //带出写入
                                },{
                                    title: '承运电话',
                                    field: 'cTEL_NO', //cTEL_NO
                                    width: 150,
                                    toInsert:'cSUPLTEL_NO', //带出写入
                                },{
                                    title: '承运手机',
                                    field: 'cMOBIL_TEL', //cTEL_NO
                                    width: 150,
                                    toInsert:'cSUPMOBIL_TEL', //带出写入
                                },
                            ], 
                            showfield:'cSUPPLIER_NM', //展示字段
                            filtefield:'cSUPPLIER_NM', //筛选字段(用于选择的数据的某个字段)
                            //``
                            action: 'supplier/search', //调用方法
                            parentField: [
                                ['cSUPLKIND_NO','cSUPLKIND_NO'], //['数据字段','基础表字段']   关联上级字段 (不会预加载)
                            ],     

                        },{
                            title: '承运联系人', //件数
                            field: 'cSUPLINK_MAN',
                            //
                            fixed: false,
                            width: 130,
                            sort: false,
                            //
                            type: 'text',
                            value: '',
                            defautvalue: '',
                        },{
                            title: '承运电话', //件数
                            field: 'cSUPLTEL_NO',
                            //
                            fixed: false,
                            width: 130,
                            sort: false,
                            //
                            type: 'text',
                            value: '',
                            defautvalue: '',
                        },{
                            title: '承运手机', //件数
                            field: 'cSUPMOBIL_TEL',
                            //
                            fixed: false,
                            width: 130,
                            sort: false,
                            //
                            type: 'text',
                            value: '',
                            defautvalue: '',
                        },{
                            title: '备注', //件数
                            field: 'cREMARK',
                            //
                            fixed: false,
                            width: 400,
                            sort: false,
                            //
                            type: 'text',
                            value: '',
                            defautvalue: '',
                        },{
                            title: '货物类型', //件数
                            field: 'cGOODS_NM',
                            //
                            fixed: false,
                            width: 400,
                            sort: false,
                            //
                            type: 'text',
                            value: '',
                            defautvalue: '',
                        },{
                            title: '启运省份',
                            field: 'cSTPROV_NO',
                            //
                            fixed: false,
                            width: 200,
                            sort: false,
                            //
                            type: 'select_api',
                            option: [],
                            value: '',
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '编号',
                                    field: 'cPROV_NO',
                                    width: 150,
                                    toInsert:'cSTPROV_NO', //带出写入
                                },{
                                    title: '省份',
                                    field: 'cPROV_NM',
                                    width: 150,
                                    toInsert:'cSTPROV_NM', //带出写入
                                },
                            ], 
                            showfield:'cSTPROV_NM', //展示字段
                            filtefield:'cSTPROV_NM', //筛选字段(用于选择的数据的某个字段)
                            clearfield:['cSTCITY_NO','cSTCITY_NM','cSTAPANA_NO','cSTAPANA_NM'], //为空时,需要 关联清空的字段 
                            //``
                            action: 'info/prov/search', //调用方法
                            
                        },{
                            title: '起运城市',
                            field: 'cSTCITY_NM',
                            //
                            fixed: false,
                            width: 230,
                            sort: false,
                            //
                            type: 'select_api',
                            option: [],
                            value: '',
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '编号',
                                    field: 'cCITY_NO',
                                    width: 150,
                                    toInsert:'cSTCITY_NO', //带出写入
                                },{
                                    title: '城市名称',
                                    field: 'cCITY_NM',
                                    width: 150,
                                    toInsert:'cSTCITY_NM', //带出写入
                                }
                            ], 
                            showfield:'cSTCITY_NM', //展示字段
                            filtefield:'cSTCITY_NM', //筛选字段(用于选择的数据的某个字段)
                            //``
                            action: 'info/city/search', //调用方法
                            parentField:[
                                ['cSTPROV_NO','cPROV_NO'], //['数据字段','基础表字段']   关联上级字段 (不会预加载)
                            ],
                            clearfield:['cSTAPANA_NO','cSTAPANA_NM'], //为空时,需要 关联清空的字段 

                        },{
                            title: '起运县区',
                            field: 'cSTCITY_NM',
                            //
                            fixed: false,
                            width: 230,
                            sort: false,
                            //
                            type: 'select_api',
                            option: [],
                            value: '',
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '编号',
                                    field: 'cAPANA_NO',
                                    width: 150,
                                    toInsert:'cSTAPANA_NO', //带出写入
                                },{
                                    title: '县区',
                                    field: 'cAPANA_NM',
                                    width: 150,
                                    toInsert:'cSTAPANA_NM', //带出写入
                                }
                            ], 
                            optionTableWidth:400, //内表格宽度
                            showfield:'cSTAPANA_NM', //展示字段
                            filtefield:'cSTAPANA_NM', //筛选字段(用于选择的数据的某个字段)
                            //``
                            action: 'info/apana/search', //调用方法
                            parentField:[
                                ['cSTCITY_NO','cCITY_NO'], //['数据字段','基础表字段']
                            ] //关联上级字段 (不会预加载)

                        },{
                            title: '目的省份',
                            field: 'cEDPROV_NO',
                            //
                            fixed: false,
                            width: 200,
                            sort: false,
                            //
                            type: 'select_api',
                            option: [],
                            value: '',
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '编号',
                                    field: 'cPROV_NO',
                                    width: 150,
                                    toInsert:'cEDPROV_NO', //带出写入
                                },{
                                    title: '省份',
                                    field: 'cPROV_NM',
                                    width: 150,
                                    toInsert:'cEDPROV_NM', //带出写入
                                },
                            ], 
                            showfield:'cEDPROV_NM', //展示字段
                            filtefield:'cEDPROV_NM', //筛选字段(用于选择的数据的某个字段)
                            clearfield:['cEDCITY_NO','cEDCITY_NM','cEDAPANA_NO','cEDAPANA_NM'], //为空时,需要 关联清空的字段 
                            //``
                            action: 'info/prov/search', //调用方法
                            
                        },{
                            title: '目的城市',
                            field: 'cEDCITY_NO',
                            //
                            fixed: false,
                            width: 230,
                            sort: false,
                            //
                            type: 'select_api',
                            option: [],
                            value: '',
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '编号',
                                    field: 'cCITY_NO',
                                    width: 150,
                                    toInsert:'cEDCITY_NO', //带出写入
                                },{
                                    title: '城市名称',
                                    field: 'cCITY_NM',
                                    width: 150,
                                    toInsert:'cEDCITY_NM', //带出写入
                                }
                            ], 
                            showfield:'cEDCITY_NM', //展示字段
                            filtefield:'cEDCITY_NM', //筛选字段(用于选择的数据的某个字段)
                            //``
                            action: 'info/city/search', //调用方法
                            parentField:[
                                ['cEDPROV_NO','cPROV_NO'], //['数据字段','基础表字段']   关联上级字段 (不会预加载)
                            ],
                            clearfield:['cEDAPANA_NO','cEDAPANA_NM'], //为空时,需要 关联清空的字段 

                        },{
                            title: '目的县区',
                            field: 'cEDAPANA_NO',
                            //
                            fixed: false,
                            width: 230,
                            sort: false,
                            //
                            type: 'select_api',
                            option: [],
                            value: '',
                            //选择内表格布局规则
                            optionTableRole: [
                                {
                                    title: '编号',
                                    field: 'cAPANA_NO',
                                    width: 150,
                                    toInsert:'cEDAPANA_NO', //带出写入
                                },{
                                    title: '县区',
                                    field: 'cAPANA_NM',
                                    width: 150,
                                    toInsert:'cEDAPANA_NM', //带出写入
                                }
                            ], 
                            optionTableWidth:400, //内表格宽度
                            showfield:'cEDAPANA_NM', //本表展示字段
                            filtefield:'cEDAPANA_NM', //本表筛选字段(用于选择的数据的某个字段)
                            //``
                            action: 'info/apana/search', //api调用方法
                            parentField:[
                                ['cEDCITY_NO','cCITY_NO'], //['本表字段','基础表字段']
                            ] //关联上级字段 (不会预加载)

                        },










                    ],
                    //调度车数据
                    tableData: [],
                },
                defaultProps: {
                  children: 'children',
                  label: 'label'
                }
            }
        },

        created() {
            let _this = this;
            //获取调度车数据
            this.carsearch();
            //全局数据
            this.getDefaultCustomData();
            //获取调度车select选项
            _this.apiInitGetSelectApi(_this.car);

        },

        computed:{
            myData(){
                return function (data,showfield,val) {
                    if(val && val != ''){
                        return data.filter((item, i, arr) => {
                            return item[showfield].includes(val)
                        })
                    }else{
                        return data;
                    }
                };
            },
        },

        methods: {
            //调度车--------------------------------------------------------------------------->
            carsearch() {
                var _this = this;
                var page = this.car.page ;

                var pdata = {
                    pagesize: this.car.pageSize,
                    page: page
                };

                //检索数据
                var cache = this.car.searchBoxCacheData;

                if(  Object.keys(cache).length > 0 ){
                    pdata = Object.assign(pdata, cache);
                }

                console.log(pdata,'pdata');

                $.get("/index.php?s=/store/wlyunshu.api/getdiaoduche", pdata , function(resalt) {
                    var data = resalt.data.list.data;
                    if (data) {
                        data.forEach(function(item, index) {
                            item.show = false ;
                        })
                    }
                    _this.car.tableData = data;
                    _this.car.total = resalt.data.list.page.total ;

                    _this.car.tableEmptyText = '暂无数据';
                });
            },
            //修改分页条数
            carSizeChange(val) {
                this.car.pageSize = val;
                this.car.page = 1;
                //
                this.car.tableEmptyText = '数据加载中...';
                this.car.tableData = [];
                //
                this.carsearch();
            },
            //点击分页
            carHandleCurrentChange(val) {
                this.car.page = val;
                //
                this.car.tableEmptyText = '数据加载中...';
                this.car.tableData = [];
                //
                this.carsearch();
            },
           
            //获取调度车选中行
            getCurrentRow() {
                let currentRow = this.$refs.cartable.selection;
            },


            //增删改查----------------------------------------------------------------------->
            addCar(){
                let role = this.car.tableRole;
                let data = {};
                role.forEach(function(item){
                    console.log(item);
                    if(item.defautvalue){
                        data[item.field] = item.defautvalue;
                    }else{
                        data[item.field] = '';
                    }
                })
                data.show = true;
                data.orderstate = '0';

                this.car.tableData.unshift(data);
                this.isEdit = true ;
            },


            //辅助
            //全局预定义数据 ----------------------------------------------------------------------->
            getDefaultCustomData() {
                /*let _this = this;
                //客户
                var pdata = {
                    action:'/cust/search',
                    show_value_field: 'cCUST_NO',
                    show_value_label: 'cCUST_SNM',
                    pagesize: 999999,
                    page: 1
                };
                request(pdata, function(resalt) {
                    var data = resalt.data.list.data;
                    if (data) {
                        _this.car.searchBox[0].option = data;
                    }
                });
                //承运别
                var pdata = {
                    action:'/supplier/kind/search',
                    show_value_field: 'cSUPLKIND_NO',
                    show_value_label: 'cSUPLKIND_NM',
                    pagesize: 999999,
                    page: 1
                };
                request(pdata, function(resalt) {
                    var data = resalt.data.list.data;
                    if (data) {
                        _this.car.searchBox[7].option = data; 
                    }
                });*/
            },
            //固定选择select选中回调 (数据关联)
            onDefaultChangeSelect(val,obj) {
                let _this = this;
                //设置全局参数
                if( obj.hasOwnProperty('insert_field')){
                    obj.option.forEach(function(item){
                        if(item.value == val){
                            let arr = Object.entries(obj.insert_field);
                            arr.forEach(function(item2){
                                _this.defaultPramas[item2[1]] = item[item2[0]];
                            })
                        }
                    })
                }
                //关联调用
                if(obj.hasOwnProperty('linksec')){
                    var pdata = {
                        action:'/supplier/search',
                        extra_where:[['cSUPLKIND_NO',val]],
                        show_value_field: 'cSUPPLIER_NO',
                        show_value_label: 'cSUPPLIER_NM',
                        pagesize: 999999,
                        page: 1
                    };
                    request(pdata, function(resalt) {
                        var data = resalt.data.list.data;
                        if (data) {
                            _this.car.searchBox[obj.linksec].option = data;
                        }
                    });
                }
            },

            //api select ----------------------------------------------------------------------->
            //初始化 api_selct 所用数据
            apiInitGetSelectApi(obj) {
                let _this = this;
                //筛选
                if(obj.searchBox){
                    console.log(3424)
                    obj.searchBox.forEach(function(item,index){
                        if((item.type == 'select_api' || item.type == 'area') && !item.parentField ){

                            _this.apiGetSelect(item);
                        }
                    })
                }
                //表格
                obj.tableRole.forEach(function(item,index){
                    if((item.type == 'select_api' || item.type == 'area') && !item.parentField ){
                        _this.apiGetSelect(item);
                    }
                })
            },
            //普通api预加载数据
            apiGetSelect(item) {
                let _this = this;
                if (item.constructor === Object && item.action && item.option.length == 0) {
                    
                    let params = {
                        action:item.action,
                        pagesize: 999999,
                        page: 1
                    };

                    //是否限制数据长度
                    if(item.maxNum){
                        params.pagesize = item.maxNum;
                    }

                    params.extra_where = [];

                    //特别全局筛选条件
                    if( item.hasOwnProperty('default_prama')){

                        let arr = item.default_prama;
                        arr.forEach(function(item2){
                            if(item2.length == 2){
                                params.extra_where.push([
                                    item2[0],
                                    _this.defaultPramas[item2[1]]
                                ]) ;
                            }else if(item2.length == 3){
                                params.extra_where.push([
                                    item2[0],
                                    item2[1], 
                                    _this.defaultPramas[item2[2]]
                                ]) ;
                            }
                            
                        })
                    }
                    //特别指定筛选条件
                    if( item.hasOwnProperty('extra_prama') && item.extra_prama.length > 0){
                        params.extra_where = params.extra_where.concat(item.extra_prama);
                    }

                    request(params, function(resalt) {
                        var data = resalt.data.list.data;
                        if (data) {
                            item.option = data;
                        }
                    });
                }
            },
            
            //表格单行背景
            tableRowClassName({ row, rowIndex }) {
                if (row.groupid > 0) {
                    return 'warning-row';
                } else if (row.show == true) {
                    return 'select-row';
                }
                return '';
            },
            //其他
            //是否可选中
            canChoice(){
                return !this.isEdit;
            },

            //通信
            setsearchboxcachedata(obj){
                console.log(obj,'obj');
                this.car.searchBoxCacheData = obj
            }
           

        },
    })
    
</script>